<?php

namespace app\admin\library\traits;
/**
 * API控制器基类
 */
trait AjaxExtend
{

    /**
     * 判断是否为ajax访问，若不是则返回错误信息
     */
    protected function tryAjax()
    {
        if (!$this->request->isAjax()) {
            ajaxerror('只允许ajax访问');
        }
    }

    /**
     * 判断是否为post访问，若不是则返回错误信息
     */
    protected function tryPost()
    {
        if (!$this->request->isPost()) {
            ajaxerror('只允许post访问');
        }
    }

    /**
     * 从访问中获取参数，若无指定参数，则返回错误
     */
    protected function params($__key, $__default = null, $errorinfo = null)
    {
        $__data = $this->request->request($__key);
        if(!isset($__data) || $__data == 'undefined' || $__data == 'null' || $__data == null){
            if ($__default === null) {
                ajaxerror($errorinfo??('缺少参数:' . $__key));
            }
            return $__default;
        }
        return $__data;
    }

    /**
     * 从get访问中获取参数，若无指定参数，则返回错误信息
     */
    protected function get($__key, $__default = null, $errorinfo = null)
    {
        $__data = $this->request->get($__key);
        if(!isset($__data) || $__data == 'undefined' || $__data == 'null' || $__data == null){
            if ($__default === null) {
                ajaxerror($errorinfo??('(GET)缺少参数:' . $__key));
            }
            return $__default;
        }
        return $__data;
    }

    /**
     * 从post访问中获取参数，若无指定参数，则返回错误
     */
    protected function post($__key, $__default = null, $errorinfo = null)
    {
        $__data = $this->request->post($__key);
        if(!isset($__data) || $__data == 'undefined' || $__data == 'null' || $__data == null){
            if ($__default === null) {
                ajaxerror($errorinfo??('(POST)缺少参数:' . $__key));
            }
            return $__default;
        }
        return $__data;
    }
}
